<?xml version="1.0"?>
<component name="org.nuxeo.ecm.platform.audit.PageProviderservice.contrib.override">

  <require>org.nuxeo.ecm.platform.audit.PageProviderservice.contrib</require>

  <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">

    <genericPageProvider class="org.nuxeo.ecm.platform.audit.api.AuditPageProvider" name="DOCUMENT_HISTORY_PROVIDER_OLD">
      <whereClause docType="BasicAuditSearch">
        <fixedPart>
          log.docUUID = ?
        </fixedPart>
        <predicate operator="BETWEEN" parameter="log.eventDate">
          <field name="startDate" schema="basicauditsearch"/>
          <field name="endDate" schema="basicauditsearch"/>
        </predicate>
        <predicate operator="IN" parameter="log.category">
          <field name="eventCategories" schema="basicauditsearch"/>
        </predicate>
        <predicate operator="=" parameter="log.eventId">
          <field name="eventId" schema="basicauditsearch"/>
        </predicate>
      </whereClause>
      <sort ascending="true" column="log.eventDate"/>
      <pageSize>10</pageSize>
    </genericPageProvider>

    <genericPageProvider class="org.nuxeo.ecm.platform.audit.api.AuditPageProvider" name="LATEST_AUDITED_CREATED_USERS_OR_GROUPS_PROVIDER">
      <whereClause docType="BasicAuditSearch">
        <fixedPart>
          log.eventId = 'user_created' OR log.eventId = 'group_created'
        </fixedPart>
      </whereClause>
      <sort ascending="false" column="log.eventDate"/>
      <pageSize>10</pageSize>
    </genericPageProvider>

    <genericPageProvider class="org.nuxeo.ecm.platform.audit.provider.LatestCreatedUsersOrGroupsPageProvider" name="LATEST_CREATED_USERS_OR_GROUPS_PROVIDER">
    </genericPageProvider>

    <genericPageProvider class="org.nuxeo.ecm.platform.audit.api.document.DocumentHistoryPageProvider" name="DOCUMENT_HISTORY_PROVIDER">
      <whereClause docType="BasicAuditSearch">
        <predicate operator="BETWEEN" parameter="log.eventDate">
          <field name="startDate" schema="basicauditsearch"/>
          <field name="endDate" schema="basicauditsearch"/>
        </predicate>
        <predicate operator="=" parameter="log.category">
          <field name="eventCategory" schema="basicauditsearch"/>
        </predicate>
        <predicate operator="IN" parameter="log.category">
          <field name="eventCategories" schema="basicauditsearch"/>
        </predicate>
        <predicate operator="=" parameter="log.eventId">
          <field name="eventId" schema="basicauditsearch"/>
        </predicate>
        <predicate operator="IN" parameter="log.eventId">
          <field name="eventIds" schema="basicauditsearch"/>
        </predicate>
        <predicate operator="=" parameter="log.principalName">
          <field name="principalName" schema="basicauditsearch"/>
        </predicate>
        <predicate operator="IN" parameter="log.principalName">
          <field name="principalNames" schema="basicauditsearch"/>
        </predicate>
      </whereClause>
      <sort ascending="false" column="log.eventDate"/>
      <sort ascending="false" column="log.id"/>
      <pageSize>10</pageSize>
      <maxPageSize>1000</maxPageSize>
    </genericPageProvider>

  </extension>

</component>
